Reference

oo, ick(1p)

Compiler for CLC-INTERCAL

NAME

'oo, ick' - Compiler for CLC-INTERCAL

SYNOPSIS

'oo, ick' [options] files...\n";

DESCRIPTION

'oo, ick' reads one or more source files and compiles them using the CLC-INTERCAL compiler. Currently, two types of input source files are recognised:

INTERCAL program source

These files must have suffix .i. The compiler can produce a CLC-INTERCAL compiler object, a program in another language using one of the optional compiler back ends, or just compile and run the program.

CLC-INTERCAL compiler object.

These files must have suffix .ipt. The compiler can produce a program in another language using one of the optional back ends, or just run the program.

The compiler accepts several options, some of which are documented here:

-c

Just produce a CLC-INTERCAL compiler object. If the input file is already a compiler object, does nothing.

-C

Does not compile the program. I can't remember why one would want to do this.

-A

Lists the program source in ASCII.

-B

Lists the program source in Baudot.

-E

Lists the program source in EBCDIC.

-O

Does not list the program source. This is the default. Note that this is a zero, not an oh.

-a

Assumes that program source is in ASCII.

-b

Assumes that program source is in Baudot.

-e

Assumes that program source is in EBCDIC.

--charset name

Assumes that program source is in the given character sets. Valid values are currently ASCII, Baudot, EBCDIC or '' (empty string). The latter, which is the default, will try to guess the character set.

-O

Invokes the optimiser. This is an oh, not a zero.

-o name

Selects a name for the output file. Default is to use the same name as the source changing the suffix as appropriate. What is an appropriate suffix depends on the backend being used. For CLC-INTERCAL compiler trees, the suffix is .ipt.

-l name

Selects a different compiler back end. Default is to use the built in Perl back end and then call the subroutine created by the compiler. If a different back end is selected, the program won't automatically run, but presumably the back end produces some output file.

-p name

Select an alternative parser. Default is to use a parser which understands the language described by the reference manual ("CLCintercal"). Alternative parsers included with the distribution are "Cintercal" and "ThreadedINTERCAL" which attempt to be compatible with ick and thick, respectively. Note that you must include the system library, syslib.i, if you need to use it as this compiler does not automagically include it.

-r

Do not run the program. This is the default if the back end selected is not the built in Perl. Note that if the program does run, all output is subject to the same conversions as specified by the -A, -B, or -E switch, with the exception that -0 is ignored; this includes any binary output, so the safest thing is to use -0. For input, the same conversions as the source code apply, however, the conversion is not applied to binary input. The recommended choice is -e, which is identical to what the program would do when compiled to a standalone executable.

NOTES

The program name is 'oo, ick', with embedded space and comma. Because of unexcusable limitation in several utilities (including, but not limited to, man, perldoc, make and ExtUtils::MakeMaker), the installation scripts will create a separate executable oo,space,ick and related man page. These can be useful to consult this documentation, but the executable won't run. Use 'oo, ick' instead.

SEE ALSO

Language::INTERCAL.

History

--charset since Debian 3.1 (Sarge).